package com.ruoyi.enterprise.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 沪深京A对象 com_base
 *
 * @author ruoyi
 * @date 2024-03-24
 */
public class ComBase extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 编号
     */
    private Long id;

    /**
     * 代码
     */
    @Excel(name = "代码")
    private String stockCode;

    /**
     * 名字
     */
    @Excel(name = "名字")
    private String stockName;

    /**
     * 最新价
     */
    @Excel(name = "最低价")
    private BigDecimal price;

    /**
     * 最新价
     */
    @Excel(name = "最高价")
    private BigDecimal price1;

    public BigDecimal getPrice1() {
        return price1;
    }

    public void setPrice1(BigDecimal price1) {
        this.price1 = price1;
    }

    /**
     * 涨幅
     */
    @Excel(name = "涨幅")
    private BigDecimal raiseRange;

    /**
     * 成交额
     */
    @Excel(name = "成交额")
    private BigDecimal txAmount;

    /**
     * 成交量
     */
    @Excel(name = "成交量")
    private BigDecimal txCount;

    /**
     * 换手率
     */
    @Excel(name = "换手率")
    private BigDecimal txRate;

    public BigDecimal getTxRate1() {
        return txRate1;
    }

    public void setTxRate1(BigDecimal txRate1) {
        this.txRate1 = txRate1;
    }

    /**
     * 换手率
     */
    @Excel(name = "换手率")
    private BigDecimal txRate1;

    /**
     * 市净率
     */
    @Excel(name = "市净率")
    private BigDecimal pb;

    /**
     * 市盈率
     */
    @Excel(name = "市盈率")
    private BigDecimal pe;

    /**
     * 量比
     */
    @Excel(name = "量比")
    private BigDecimal countRate;

    /**
     * 核心题材
     */
    @Excel(name = "核心题材")
    private String tcName;

    /**
     * 入选原因
     */
    @Excel(name = "入选原因")
    private String selectedBoardReason;

    /**
     * 题材详情
     */
    @Excel(name = "题材详情")
    private String tcDetail;

    private int tcCount;

    public int getTcCount() {
        return tcCount;
    }

    public void setTcCount(int tcCount) {
        this.tcCount = tcCount;
    }

    /**
     * 公司类型
     */
    @Excel(name = "公司类型")
    private String companyType;

    /**
     * 公司简介
     */
    @Excel(name = "公司简介")
    private String companyUrl;

    /**
     * 沪深京A更新
     */
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    @Excel(name = "沪深京A更新", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updateTimeHsja;

    /**
     * 题材更新
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "题材更新", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updateTimeTc;

    /**
     * 股东数更新
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "股东数更新", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updateTimeHolderCount;

    /**
     * 公司名字
     */
    @Excel(name = "公司名字")
    private String companyName;

    public String getCompanyProfile() {
        return companyProfile;
    }

    public void setCompanyProfile(String companyProfile) {
        this.companyProfile = companyProfile;
    }

    /**
     * 公司简介
     */
    @Excel(name = "公司简介")
    private String companyProfile;

    public String getCompanyAddress() {
        return companyAddress;
    }

    public void setCompanyAddress(String companyAddress) {
        this.companyAddress = companyAddress;
    }

    /**
     * 公司地址
     */
    @Excel(name = "地址")
    private String companyAddress;

    /**
     * 主营业务
     */
    @Excel(name = "主营业务")
    private String mainBusiness;

    /**
     * 股东人数
     */
    @Excel(name = "股东人数")
    private Long holderTotalNum;
    /**
     * 股东人数
     */
    @Excel(name = "股东人数1")
    private Long holderTotalNum1;

    public Long getHolderTotalNum1() {
        return holderTotalNum1;
    }

    public void setHolderTotalNum1(Long holderTotalNum1) {
        this.holderTotalNum1 = holderTotalNum1;
    }

    /**
     * 股东变化率
     */
    @Excel(name = "股东变化率")
    private BigDecimal holderTotalNumRatio;

    /**
     * 人均流通股数
     */
    @Excel(name = "人均流通股数")
    private Long aveFreeSharesNum;

    /**
     * 人均流通股变化率
     */
    @Excel(name = "人均流通股变化率")
    private BigDecimal aveFreeSharesRatio;

    /**
     * 筹码集中度
     */
    @Excel(name = "筹码集中度")
    private String holdFocus;

    /**
     * 股东股价
     */
    @Excel(name = "股东股价")
    private BigDecimal avePrice;

    /**
     * 人均金额
     */
    @Excel(name = "人均金额")
    private BigDecimal aveHoldAmt;

    /**
     * 十大股东持股合计(%)
     */
    @Excel(name = "十大股东持股合计(%)")
    private BigDecimal holdRatioTotal;

    /**
     * 十大流通股东持股合计(%)
     */
    @Excel(name = "十大流通股东持股合计(%) ")
    private BigDecimal freeholdRatioTotal;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setStockCode(String stockCode) {
        this.stockCode = stockCode;
    }

    public String getStockCode() {
        return stockCode;
    }

    public void setStockName(String stockName) {
        this.stockName = stockName;
    }

    public String getStockName() {
        return stockName;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setRaiseRange(BigDecimal raiseRange) {
        this.raiseRange = raiseRange;
    }

    public BigDecimal getRaiseRange() {
        return raiseRange;
    }

    public void setTxAmount(BigDecimal txAmount) {
        this.txAmount = txAmount;
    }

    public BigDecimal getTxAmount() {
        return txAmount;
    }

    public void setTxCount(BigDecimal txCount) {
        this.txCount = txCount;
    }

    public BigDecimal getTxCount() {
        return txCount;
    }

    public void setTxRate(BigDecimal txRate) {
        this.txRate = txRate;
    }

    public BigDecimal getTxRate() {
        return txRate;
    }

    public void setPb(BigDecimal pb) {
        this.pb = pb;
    }

    public BigDecimal getPb() {
        return pb;
    }

    public void setPe(BigDecimal pe) {
        this.pe = pe;
    }

    public BigDecimal getPe() {
        return pe;
    }

    public void setCountRate(BigDecimal countRate) {
        this.countRate = countRate;
    }

    public BigDecimal getCountRate() {
        return countRate;
    }

    public void setTcName(String tcName) {
        this.tcName = tcName;
    }

    public String getTcName() {
        return tcName;
    }

    public void setSelectedBoardReason(String selectedBoardReason) {
        this.selectedBoardReason = selectedBoardReason;
    }

    public String getSelectedBoardReason() {
        return selectedBoardReason;
    }

    public void setTcDetail(String tcDetail) {
        this.tcDetail = tcDetail;
    }

    public String getTcDetail() {
        return tcDetail;
    }

    public void setCompanyType(String companyType) {
        this.companyType = companyType;
    }

    public String getCompanyType() {
        return companyType;
    }

    public void setCompanyUrl(String companyUrl) {
        this.companyUrl = companyUrl;
    }

    public String getCompanyUrl() {
        return companyUrl;
    }

    public void setUpdateTimeHsja(Date updateTimeHsja) {
        this.updateTimeHsja = updateTimeHsja;
    }

    public Date getUpdateTimeHsja() {
        return updateTimeHsja;
    }

    public void setUpdateTimeTc(Date updateTimeTc) {
        this.updateTimeTc = updateTimeTc;
    }

    public Date getUpdateTimeTc() {
        return updateTimeTc;
    }

    public void setUpdateTimeHolderCount(Date updateTimeHolderCount) {
        this.updateTimeHolderCount = updateTimeHolderCount;
    }

    public Date getUpdateTimeHolderCount() {
        return updateTimeHolderCount;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setMainBusiness(String mainBusiness) {
        this.mainBusiness = mainBusiness;
    }

    public String getMainBusiness() {
        return mainBusiness;
    }

    public void setHolderTotalNum(Long holderTotalNum) {
        this.holderTotalNum = holderTotalNum;
    }

    public Long getHolderTotalNum() {
        return holderTotalNum;
    }

    public void setHolderTotalNumRatio(BigDecimal holderTotalNumRatio) {
        this.holderTotalNumRatio = holderTotalNumRatio;
    }

    public BigDecimal getHolderTotalNumRatio() {
        return holderTotalNumRatio;
    }

    public void setAveFreeSharesNum(Long aveFreeSharesNum) {
        this.aveFreeSharesNum = aveFreeSharesNum;
    }

    public Long getAveFreeSharesNum() {
        return aveFreeSharesNum;
    }

    public void setAveFreeSharesRatio(BigDecimal aveFreeSharesRatio) {
        this.aveFreeSharesRatio = aveFreeSharesRatio;
    }

    public BigDecimal getAveFreeSharesRatio() {
        return aveFreeSharesRatio;
    }

    public void setHoldFocus(String holdFocus) {
        this.holdFocus = holdFocus;
    }

    public String getHoldFocus() {
        return holdFocus;
    }

    public void setAvePrice(BigDecimal avePrice) {
        this.avePrice = avePrice;
    }

    public BigDecimal getAvePrice() {
        return avePrice;
    }

    public void setAveHoldAmt(BigDecimal aveHoldAmt) {
        this.aveHoldAmt = aveHoldAmt;
    }

    public BigDecimal getAveHoldAmt() {
        return aveHoldAmt;
    }

    public void setHoldRatioTotal(BigDecimal holdRatioTotal) {
        this.holdRatioTotal = holdRatioTotal;
    }

    public BigDecimal getHoldRatioTotal() {
        return holdRatioTotal;
    }

    public void setFreeholdRatioTotal(BigDecimal freeholdRatioTotal) {
        this.freeholdRatioTotal = freeholdRatioTotal;
    }

    public BigDecimal getFreeholdRatioTotal() {
        return freeholdRatioTotal;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("stockCode", getStockCode())
                .append("stockName", getStockName())
                .append("price", getPrice())
                .append("raiseRange", getRaiseRange())
                .append("txAmount", getTxAmount())
                .append("txCount", getTxCount())
                .append("txRate", getTxRate())
                .append("pb", getPb())
                .append("pe", getPe())
                .append("countRate", getCountRate())
                .append("tcName", getTcName())
                .append("selectedBoardReason", getSelectedBoardReason())
                .append("tcDetail", getTcDetail())
                .append("companyType", getCompanyType())
                .append("companyUrl", getCompanyUrl())
                .append("updateTimeHsja", getUpdateTimeHsja())
                .append("updateTimeTc", getUpdateTimeTc())
                .append("updateTimeHolderCount", getUpdateTimeHolderCount())
                .append("companyName", getCompanyName())
                .append("mainBusiness", getMainBusiness())
                .append("holderTotalNum", getHolderTotalNum())
                .append("holderTotalNumRatio", getHolderTotalNumRatio())
                .append("aveFreeSharesNum", getAveFreeSharesNum())
                .append("aveFreeSharesRatio", getAveFreeSharesRatio())
                .append("holdFocus", getHoldFocus())
                .append("avePrice", getAvePrice())
                .append("aveHoldAmt", getAveHoldAmt())
                .append("holdRatioTotal", getHoldRatioTotal())
                .append("freeholdRatioTotal", getFreeholdRatioTotal())
                .toString();
    }
}
